package de.sabram.upb.specs.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import de.sabram.upb.specs.services.MapGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalMapParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_INT", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'MAPSYM'", "'MAPRULE'", "'MAPCHAINS'", "'::='", "'.'", "':'", "'<'", "'>'", "'$'"
    };
    public static final int RULE_ID=6;
    public static final int RULE_ANY_OTHER=10;
    public static final int EOF=-1;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=4;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalMapParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalMapParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalMapParser.tokenNames; }
    public String getGrammarFileName() { return "../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g"; }



     	private MapGrammarAccess grammarAccess;
     	
        public InternalMapParser(TokenStream input, MapGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "TypeMapFile";	
       	}
       	
       	@Override
       	protected MapGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleTypeMapFile"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:67:1: entryRuleTypeMapFile returns [EObject current=null] : iv_ruleTypeMapFile= ruleTypeMapFile EOF ;
    public final EObject entryRuleTypeMapFile() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTypeMapFile = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:68:2: (iv_ruleTypeMapFile= ruleTypeMapFile EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:69:2: iv_ruleTypeMapFile= ruleTypeMapFile EOF
            {
             newCompositeNode(grammarAccess.getTypeMapFileRule()); 
            pushFollow(FOLLOW_ruleTypeMapFile_in_entryRuleTypeMapFile75);
            iv_ruleTypeMapFile=ruleTypeMapFile();

            state._fsp--;

             current =iv_ruleTypeMapFile; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeMapFile85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTypeMapFile"


    // $ANTLR start "ruleTypeMapFile"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:76:1: ruleTypeMapFile returns [EObject current=null] : ( (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ ) | (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ ) | otherlv_4= 'MAPCHAINS' )+ ;
    public final EObject ruleTypeMapFile() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        EObject lv_symbolMappings_1_0 = null;

        EObject lv_rulemapping_3_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:79:28: ( ( (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ ) | (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ ) | otherlv_4= 'MAPCHAINS' )+ )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:80:1: ( (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ ) | (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ ) | otherlv_4= 'MAPCHAINS' )+
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:80:1: ( (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ ) | (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ ) | otherlv_4= 'MAPCHAINS' )+
            int cnt3=0;
            loop3:
            do {
                int alt3=4;
                switch ( input.LA(1) ) {
                case 11:
                    {
                    alt3=1;
                    }
                    break;
                case 12:
                    {
                    alt3=2;
                    }
                    break;
                case 13:
                    {
                    alt3=3;
                    }
                    break;

                }

                switch (alt3) {
            	case 1 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:80:2: (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ )
            	    {
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:80:2: (otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+ )
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:80:4: otherlv_0= 'MAPSYM' ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+
            	    {
            	    otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleTypeMapFile123); 

            	        	newLeafNode(otherlv_0, grammarAccess.getTypeMapFileAccess().getMAPSYMKeyword_0_0());
            	        
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:84:1: ( (lv_symbolMappings_1_0= ruleSymbolMapping ) )+
            	    int cnt1=0;
            	    loop1:
            	    do {
            	        int alt1=2;
            	        int LA1_0 = input.LA(1);

            	        if ( (LA1_0==RULE_ID) ) {
            	            alt1=1;
            	        }


            	        switch (alt1) {
            	    	case 1 :
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:85:1: (lv_symbolMappings_1_0= ruleSymbolMapping )
            	    	    {
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:85:1: (lv_symbolMappings_1_0= ruleSymbolMapping )
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:86:3: lv_symbolMappings_1_0= ruleSymbolMapping
            	    	    {
            	    	     
            	    	    	        newCompositeNode(grammarAccess.getTypeMapFileAccess().getSymbolMappingsSymbolMappingParserRuleCall_0_1_0()); 
            	    	    	    
            	    	    pushFollow(FOLLOW_ruleSymbolMapping_in_ruleTypeMapFile144);
            	    	    lv_symbolMappings_1_0=ruleSymbolMapping();

            	    	    state._fsp--;


            	    	    	        if (current==null) {
            	    	    	            current = createModelElementForParent(grammarAccess.getTypeMapFileRule());
            	    	    	        }
            	    	           		add(
            	    	           			current, 
            	    	           			"symbolMappings",
            	    	            		lv_symbolMappings_1_0, 
            	    	            		"SymbolMapping");
            	    	    	        afterParserOrEnumRuleCall();
            	    	    	    

            	    	    }


            	    	    }
            	    	    break;

            	    	default :
            	    	    if ( cnt1 >= 1 ) break loop1;
            	                EarlyExitException eee =
            	                    new EarlyExitException(1, input);
            	                throw eee;
            	        }
            	        cnt1++;
            	    } while (true);


            	    }


            	    }
            	    break;
            	case 2 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:103:6: (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ )
            	    {
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:103:6: (otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+ )
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:103:8: otherlv_2= 'MAPRULE' ( (lv_rulemapping_3_0= ruleRuleMapping ) )+
            	    {
            	    otherlv_2=(Token)match(input,12,FOLLOW_12_in_ruleTypeMapFile165); 

            	        	newLeafNode(otherlv_2, grammarAccess.getTypeMapFileAccess().getMAPRULEKeyword_1_0());
            	        
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:107:1: ( (lv_rulemapping_3_0= ruleRuleMapping ) )+
            	    int cnt2=0;
            	    loop2:
            	    do {
            	        int alt2=2;
            	        int LA2_0 = input.LA(1);

            	        if ( (LA2_0==RULE_ID) ) {
            	            alt2=1;
            	        }


            	        switch (alt2) {
            	    	case 1 :
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:108:1: (lv_rulemapping_3_0= ruleRuleMapping )
            	    	    {
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:108:1: (lv_rulemapping_3_0= ruleRuleMapping )
            	    	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:109:3: lv_rulemapping_3_0= ruleRuleMapping
            	    	    {
            	    	     
            	    	    	        newCompositeNode(grammarAccess.getTypeMapFileAccess().getRulemappingRuleMappingParserRuleCall_1_1_0()); 
            	    	    	    
            	    	    pushFollow(FOLLOW_ruleRuleMapping_in_ruleTypeMapFile186);
            	    	    lv_rulemapping_3_0=ruleRuleMapping();

            	    	    state._fsp--;


            	    	    	        if (current==null) {
            	    	    	            current = createModelElementForParent(grammarAccess.getTypeMapFileRule());
            	    	    	        }
            	    	           		add(
            	    	           			current, 
            	    	           			"rulemapping",
            	    	            		lv_rulemapping_3_0, 
            	    	            		"RuleMapping");
            	    	    	        afterParserOrEnumRuleCall();
            	    	    	    

            	    	    }


            	    	    }
            	    	    break;

            	    	default :
            	    	    if ( cnt2 >= 1 ) break loop2;
            	                EarlyExitException eee =
            	                    new EarlyExitException(2, input);
            	                throw eee;
            	        }
            	        cnt2++;
            	    } while (true);


            	    }


            	    }
            	    break;
            	case 3 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:126:7: otherlv_4= 'MAPCHAINS'
            	    {
            	    otherlv_4=(Token)match(input,13,FOLLOW_13_in_ruleTypeMapFile206); 

            	        	newLeafNode(otherlv_4, grammarAccess.getTypeMapFileAccess().getMAPCHAINSKeyword_2());
            	        

            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTypeMapFile"


    // $ANTLR start "entryRuleSymbolMapping"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:138:1: entryRuleSymbolMapping returns [EObject current=null] : iv_ruleSymbolMapping= ruleSymbolMapping EOF ;
    public final EObject entryRuleSymbolMapping() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSymbolMapping = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:139:2: (iv_ruleSymbolMapping= ruleSymbolMapping EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:140:2: iv_ruleSymbolMapping= ruleSymbolMapping EOF
            {
             newCompositeNode(grammarAccess.getSymbolMappingRule()); 
            pushFollow(FOLLOW_ruleSymbolMapping_in_entryRuleSymbolMapping243);
            iv_ruleSymbolMapping=ruleSymbolMapping();

            state._fsp--;

             current =iv_ruleSymbolMapping; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSymbolMapping253); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSymbolMapping"


    // $ANTLR start "ruleSymbolMapping"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:147:1: ruleSymbolMapping returns [EObject current=null] : (this_Ident_0= ruleIdent otherlv_1= '::=' ( (lv_members_2_0= ruleMembers ) ) otherlv_3= '.' ) ;
    public final EObject ruleSymbolMapping() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        EObject this_Ident_0 = null;

        EObject lv_members_2_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:150:28: ( (this_Ident_0= ruleIdent otherlv_1= '::=' ( (lv_members_2_0= ruleMembers ) ) otherlv_3= '.' ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:151:1: (this_Ident_0= ruleIdent otherlv_1= '::=' ( (lv_members_2_0= ruleMembers ) ) otherlv_3= '.' )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:151:1: (this_Ident_0= ruleIdent otherlv_1= '::=' ( (lv_members_2_0= ruleMembers ) ) otherlv_3= '.' )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:152:5: this_Ident_0= ruleIdent otherlv_1= '::=' ( (lv_members_2_0= ruleMembers ) ) otherlv_3= '.'
            {
             
                    newCompositeNode(grammarAccess.getSymbolMappingAccess().getIdentParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleIdent_in_ruleSymbolMapping300);
            this_Ident_0=ruleIdent();

            state._fsp--;

             
                    current = this_Ident_0; 
                    afterParserOrEnumRuleCall();
                
            otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleSymbolMapping311); 

                	newLeafNode(otherlv_1, grammarAccess.getSymbolMappingAccess().getColonColonEqualsSignKeyword_1());
                
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:164:1: ( (lv_members_2_0= ruleMembers ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:165:1: (lv_members_2_0= ruleMembers )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:165:1: (lv_members_2_0= ruleMembers )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:166:3: lv_members_2_0= ruleMembers
            {
             
            	        newCompositeNode(grammarAccess.getSymbolMappingAccess().getMembersMembersParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleMembers_in_ruleSymbolMapping332);
            lv_members_2_0=ruleMembers();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getSymbolMappingRule());
            	        }
                   		add(
                   			current, 
                   			"members",
                    		lv_members_2_0, 
                    		"Members");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleSymbolMapping344); 

                	newLeafNode(otherlv_3, grammarAccess.getSymbolMappingAccess().getFullStopKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSymbolMapping"


    // $ANTLR start "entryRuleMembers"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:194:1: entryRuleMembers returns [EObject current=null] : iv_ruleMembers= ruleMembers EOF ;
    public final EObject entryRuleMembers() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMembers = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:195:2: (iv_ruleMembers= ruleMembers EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:196:2: iv_ruleMembers= ruleMembers EOF
            {
             newCompositeNode(grammarAccess.getMembersRule()); 
            pushFollow(FOLLOW_ruleMembers_in_entryRuleMembers380);
            iv_ruleMembers=ruleMembers();

            state._fsp--;

             current =iv_ruleMembers; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMembers390); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMembers"


    // $ANTLR start "ruleMembers"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:203:1: ruleMembers returns [EObject current=null] : ( (lv_idents_0_0= ruleIdent ) )+ ;
    public final EObject ruleMembers() throws RecognitionException {
        EObject current = null;

        EObject lv_idents_0_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:206:28: ( ( (lv_idents_0_0= ruleIdent ) )+ )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:207:1: ( (lv_idents_0_0= ruleIdent ) )+
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:207:1: ( (lv_idents_0_0= ruleIdent ) )+
            int cnt4=0;
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==RULE_ID) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:208:1: (lv_idents_0_0= ruleIdent )
            	    {
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:208:1: (lv_idents_0_0= ruleIdent )
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:209:3: lv_idents_0_0= ruleIdent
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getMembersAccess().getIdentsIdentParserRuleCall_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleIdent_in_ruleMembers435);
            	    lv_idents_0_0=ruleIdent();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getMembersRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"idents",
            	            		lv_idents_0_0, 
            	            		"Ident");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMembers"


    // $ANTLR start "entryRuleRuleMapping"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:233:1: entryRuleRuleMapping returns [EObject current=null] : iv_ruleRuleMapping= ruleRuleMapping EOF ;
    public final EObject entryRuleRuleMapping() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRuleMapping = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:234:2: (iv_ruleRuleMapping= ruleRuleMapping EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:235:2: iv_ruleRuleMapping= ruleRuleMapping EOF
            {
             newCompositeNode(grammarAccess.getRuleMappingRule()); 
            pushFollow(FOLLOW_ruleRuleMapping_in_entryRuleRuleMapping471);
            iv_ruleRuleMapping=ruleRuleMapping();

            state._fsp--;

             current =iv_ruleRuleMapping; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleMapping481); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRuleMapping"


    // $ANTLR start "ruleRuleMapping"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:242:1: ruleRuleMapping returns [EObject current=null] : (this_Rule_0= ruleRule ruleRewrite (this_RuleName_2= ruleRuleName )? otherlv_3= '.' ) ;
    public final EObject ruleRuleMapping() throws RecognitionException {
        EObject current = null;

        Token otherlv_3=null;
        EObject this_Rule_0 = null;

        EObject this_RuleName_2 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:245:28: ( (this_Rule_0= ruleRule ruleRewrite (this_RuleName_2= ruleRuleName )? otherlv_3= '.' ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:246:1: (this_Rule_0= ruleRule ruleRewrite (this_RuleName_2= ruleRuleName )? otherlv_3= '.' )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:246:1: (this_Rule_0= ruleRule ruleRewrite (this_RuleName_2= ruleRuleName )? otherlv_3= '.' )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:247:5: this_Rule_0= ruleRule ruleRewrite (this_RuleName_2= ruleRuleName )? otherlv_3= '.'
            {
             
                    newCompositeNode(grammarAccess.getRuleMappingAccess().getRuleParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleRule_in_ruleRuleMapping528);
            this_Rule_0=ruleRule();

            state._fsp--;

             
                    current = this_Rule_0; 
                    afterParserOrEnumRuleCall();
                
             
                    newCompositeNode(grammarAccess.getRuleMappingAccess().getRewriteParserRuleCall_1()); 
                
            pushFollow(FOLLOW_ruleRewrite_in_ruleRuleMapping543);
            ruleRewrite();

            state._fsp--;

             
                    afterParserOrEnumRuleCall();
                
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:263:1: (this_RuleName_2= ruleRuleName )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==16) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:264:5: this_RuleName_2= ruleRuleName
                    {
                     
                            newCompositeNode(grammarAccess.getRuleMappingAccess().getRuleNameParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleRuleName_in_ruleRuleMapping565);
                    this_RuleName_2=ruleRuleName();

                    state._fsp--;

                     
                            current = this_RuleName_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }

            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleRuleMapping578); 

                	newLeafNode(otherlv_3, grammarAccess.getRuleMappingAccess().getFullStopKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRuleMapping"


    // $ANTLR start "entryRuleRule"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:284:1: entryRuleRule returns [EObject current=null] : iv_ruleRule= ruleRule EOF ;
    public final EObject entryRuleRule() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRule = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:285:2: (iv_ruleRule= ruleRule EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:286:2: iv_ruleRule= ruleRule EOF
            {
             newCompositeNode(grammarAccess.getRuleRule()); 
            pushFollow(FOLLOW_ruleRule_in_entryRuleRule614);
            iv_ruleRule=ruleRule();

            state._fsp--;

             current =iv_ruleRule; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRule624); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRule"


    // $ANTLR start "ruleRule"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:293:1: ruleRule returns [EObject current=null] : (this_Ident_0= ruleIdent ruleDelimiter ( (lv_rhs_2_0= ruleRHS ) ) ) ;
    public final EObject ruleRule() throws RecognitionException {
        EObject current = null;

        EObject this_Ident_0 = null;

        EObject lv_rhs_2_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:296:28: ( (this_Ident_0= ruleIdent ruleDelimiter ( (lv_rhs_2_0= ruleRHS ) ) ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:297:1: (this_Ident_0= ruleIdent ruleDelimiter ( (lv_rhs_2_0= ruleRHS ) ) )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:297:1: (this_Ident_0= ruleIdent ruleDelimiter ( (lv_rhs_2_0= ruleRHS ) ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:298:5: this_Ident_0= ruleIdent ruleDelimiter ( (lv_rhs_2_0= ruleRHS ) )
            {
             
                    newCompositeNode(grammarAccess.getRuleAccess().getIdentParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleIdent_in_ruleRule671);
            this_Ident_0=ruleIdent();

            state._fsp--;

             
                    current = this_Ident_0; 
                    afterParserOrEnumRuleCall();
                
             
                    newCompositeNode(grammarAccess.getRuleAccess().getDelimiterParserRuleCall_1()); 
                
            pushFollow(FOLLOW_ruleDelimiter_in_ruleRule686);
            ruleDelimiter();

            state._fsp--;

             
                    afterParserOrEnumRuleCall();
                
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:314:1: ( (lv_rhs_2_0= ruleRHS ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:315:1: (lv_rhs_2_0= ruleRHS )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:315:1: (lv_rhs_2_0= ruleRHS )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:316:3: lv_rhs_2_0= ruleRHS
            {
             
            	        newCompositeNode(grammarAccess.getRuleAccess().getRhsRHSParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleRHS_in_ruleRule706);
            lv_rhs_2_0=ruleRHS();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getRuleRule());
            	        }
                   		set(
                   			current, 
                   			"rhs",
                    		lv_rhs_2_0, 
                    		"RHS");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRule"


    // $ANTLR start "entryRuleDelimiter"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:340:1: entryRuleDelimiter returns [String current=null] : iv_ruleDelimiter= ruleDelimiter EOF ;
    public final String entryRuleDelimiter() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleDelimiter = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:341:2: (iv_ruleDelimiter= ruleDelimiter EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:342:2: iv_ruleDelimiter= ruleDelimiter EOF
            {
             newCompositeNode(grammarAccess.getDelimiterRule()); 
            pushFollow(FOLLOW_ruleDelimiter_in_entryRuleDelimiter743);
            iv_ruleDelimiter=ruleDelimiter();

            state._fsp--;

             current =iv_ruleDelimiter.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDelimiter754); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDelimiter"


    // $ANTLR start "ruleDelimiter"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:349:1: ruleDelimiter returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= ':' | kw= '::=' ) ;
    public final AntlrDatatypeRuleToken ruleDelimiter() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:352:28: ( (kw= ':' | kw= '::=' ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:353:1: (kw= ':' | kw= '::=' )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:353:1: (kw= ':' | kw= '::=' )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==16) ) {
                alt6=1;
            }
            else if ( (LA6_0==14) ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:354:2: kw= ':'
                    {
                    kw=(Token)match(input,16,FOLLOW_16_in_ruleDelimiter792); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getDelimiterAccess().getColonKeyword_0()); 
                        

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:361:2: kw= '::='
                    {
                    kw=(Token)match(input,14,FOLLOW_14_in_ruleDelimiter811); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getDelimiterAccess().getColonColonEqualsSignKeyword_1()); 
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDelimiter"


    // $ANTLR start "entryRuleRHS"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:374:1: entryRuleRHS returns [EObject current=null] : iv_ruleRHS= ruleRHS EOF ;
    public final EObject entryRuleRHS() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRHS = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:375:2: (iv_ruleRHS= ruleRHS EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:376:2: iv_ruleRHS= ruleRHS EOF
            {
             newCompositeNode(grammarAccess.getRHSRule()); 
            pushFollow(FOLLOW_ruleRHS_in_entryRuleRHS851);
            iv_ruleRHS=ruleRHS();

            state._fsp--;

             current =iv_ruleRHS; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRHS861); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRHS"


    // $ANTLR start "ruleRHS"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:383:1: ruleRHS returns [EObject current=null] : ( (lv_elemnts_0_0= ruleElement ) )* ;
    public final EObject ruleRHS() throws RecognitionException {
        EObject current = null;

        EObject lv_elemnts_0_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:386:28: ( ( (lv_elemnts_0_0= ruleElement ) )* )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:387:1: ( (lv_elemnts_0_0= ruleElement ) )*
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:387:1: ( (lv_elemnts_0_0= ruleElement ) )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==RULE_STRING||LA7_0==RULE_ID) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:388:1: (lv_elemnts_0_0= ruleElement )
            	    {
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:388:1: (lv_elemnts_0_0= ruleElement )
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:389:3: lv_elemnts_0_0= ruleElement
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getRHSAccess().getElemntsElementParserRuleCall_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleElement_in_ruleRHS906);
            	    lv_elemnts_0_0=ruleElement();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getRHSRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"elemnts",
            	            		lv_elemnts_0_0, 
            	            		"Element");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRHS"


    // $ANTLR start "entryRuleElement"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:413:1: entryRuleElement returns [EObject current=null] : iv_ruleElement= ruleElement EOF ;
    public final EObject entryRuleElement() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleElement = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:414:2: (iv_ruleElement= ruleElement EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:415:2: iv_ruleElement= ruleElement EOF
            {
             newCompositeNode(grammarAccess.getElementRule()); 
            pushFollow(FOLLOW_ruleElement_in_entryRuleElement942);
            iv_ruleElement=ruleElement();

            state._fsp--;

             current =iv_ruleElement; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleElement952); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleElement"


    // $ANTLR start "ruleElement"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:422:1: ruleElement returns [EObject current=null] : (this_Ident_0= ruleIdent | this_STRING_1= RULE_STRING ) ;
    public final EObject ruleElement() throws RecognitionException {
        EObject current = null;

        Token this_STRING_1=null;
        EObject this_Ident_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:425:28: ( (this_Ident_0= ruleIdent | this_STRING_1= RULE_STRING ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:426:1: (this_Ident_0= ruleIdent | this_STRING_1= RULE_STRING )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:426:1: (this_Ident_0= ruleIdent | this_STRING_1= RULE_STRING )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==RULE_ID) ) {
                alt8=1;
            }
            else if ( (LA8_0==RULE_STRING) ) {
                alt8=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:427:5: this_Ident_0= ruleIdent
                    {
                     
                            newCompositeNode(grammarAccess.getElementAccess().getIdentParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleIdent_in_ruleElement999);
                    this_Ident_0=ruleIdent();

                    state._fsp--;

                     
                            current = this_Ident_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:436:6: this_STRING_1= RULE_STRING
                    {
                    this_STRING_1=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleElement1015); 
                     
                        newLeafNode(this_STRING_1, grammarAccess.getElementAccess().getSTRINGTerminalRuleCall_1()); 
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleElement"


    // $ANTLR start "entryRuleRewrite"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:448:1: entryRuleRewrite returns [String current=null] : iv_ruleRewrite= ruleRewrite EOF ;
    public final String entryRuleRewrite() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleRewrite = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:449:2: (iv_ruleRewrite= ruleRewrite EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:450:2: iv_ruleRewrite= ruleRewrite EOF
            {
             newCompositeNode(grammarAccess.getRewriteRule()); 
            pushFollow(FOLLOW_ruleRewrite_in_entryRuleRewrite1051);
            iv_ruleRewrite=ruleRewrite();

            state._fsp--;

             current =iv_ruleRewrite.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRewrite1062); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRewrite"


    // $ANTLR start "ruleRewrite"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:457:1: ruleRewrite returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '<' this_RewriteRHS_1= ruleRewriteRHS kw= '>' ) ;
    public final AntlrDatatypeRuleToken ruleRewrite() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        AntlrDatatypeRuleToken this_RewriteRHS_1 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:460:28: ( (kw= '<' this_RewriteRHS_1= ruleRewriteRHS kw= '>' ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:461:1: (kw= '<' this_RewriteRHS_1= ruleRewriteRHS kw= '>' )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:461:1: (kw= '<' this_RewriteRHS_1= ruleRewriteRHS kw= '>' )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:462:2: kw= '<' this_RewriteRHS_1= ruleRewriteRHS kw= '>'
            {
            kw=(Token)match(input,17,FOLLOW_17_in_ruleRewrite1100); 

                    current.merge(kw);
                    newLeafNode(kw, grammarAccess.getRewriteAccess().getLessThanSignKeyword_0()); 
                
             
                    newCompositeNode(grammarAccess.getRewriteAccess().getRewriteRHSParserRuleCall_1()); 
                
            pushFollow(FOLLOW_ruleRewriteRHS_in_ruleRewrite1122);
            this_RewriteRHS_1=ruleRewriteRHS();

            state._fsp--;


            		current.merge(this_RewriteRHS_1);
                
             
                    afterParserOrEnumRuleCall();
                
            kw=(Token)match(input,18,FOLLOW_18_in_ruleRewrite1140); 

                    current.merge(kw);
                    newLeafNode(kw, grammarAccess.getRewriteAccess().getGreaterThanSignKeyword_2()); 
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRewrite"


    // $ANTLR start "entryRuleRewriteRHS"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:492:1: entryRuleRewriteRHS returns [String current=null] : iv_ruleRewriteRHS= ruleRewriteRHS EOF ;
    public final String entryRuleRewriteRHS() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleRewriteRHS = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:493:2: (iv_ruleRewriteRHS= ruleRewriteRHS EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:494:2: iv_ruleRewriteRHS= ruleRewriteRHS EOF
            {
             newCompositeNode(grammarAccess.getRewriteRHSRule()); 
            pushFollow(FOLLOW_ruleRewriteRHS_in_entryRuleRewriteRHS1181);
            iv_ruleRewriteRHS=ruleRewriteRHS();

            state._fsp--;

             current =iv_ruleRewriteRHS.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRewriteRHS1192); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRewriteRHS"


    // $ANTLR start "ruleRewriteRHS"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:501:1: ruleRewriteRHS returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_Position_0= rulePosition | this_STRING_1= RULE_STRING )+ ;
    public final AntlrDatatypeRuleToken ruleRewriteRHS() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_STRING_1=null;
        AntlrDatatypeRuleToken this_Position_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:504:28: ( (this_Position_0= rulePosition | this_STRING_1= RULE_STRING )+ )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:505:1: (this_Position_0= rulePosition | this_STRING_1= RULE_STRING )+
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:505:1: (this_Position_0= rulePosition | this_STRING_1= RULE_STRING )+
            int cnt9=0;
            loop9:
            do {
                int alt9=3;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==19) ) {
                    alt9=1;
                }
                else if ( (LA9_0==RULE_STRING) ) {
                    alt9=2;
                }


                switch (alt9) {
            	case 1 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:506:5: this_Position_0= rulePosition
            	    {
            	     
            	            newCompositeNode(grammarAccess.getRewriteRHSAccess().getPositionParserRuleCall_0()); 
            	        
            	    pushFollow(FOLLOW_rulePosition_in_ruleRewriteRHS1239);
            	    this_Position_0=rulePosition();

            	    state._fsp--;


            	    		current.merge(this_Position_0);
            	        
            	     
            	            afterParserOrEnumRuleCall();
            	        

            	    }
            	    break;
            	case 2 :
            	    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:517:10: this_STRING_1= RULE_STRING
            	    {
            	    this_STRING_1=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleRewriteRHS1265); 

            	    		current.merge(this_STRING_1);
            	        
            	     
            	        newLeafNode(this_STRING_1, grammarAccess.getRewriteRHSAccess().getSTRINGTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    if ( cnt9 >= 1 ) break loop9;
                        EarlyExitException eee =
                            new EarlyExitException(9, input);
                        throw eee;
                }
                cnt9++;
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRewriteRHS"


    // $ANTLR start "entryRulePosition"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:532:1: entryRulePosition returns [String current=null] : iv_rulePosition= rulePosition EOF ;
    public final String entryRulePosition() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_rulePosition = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:533:2: (iv_rulePosition= rulePosition EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:534:2: iv_rulePosition= rulePosition EOF
            {
             newCompositeNode(grammarAccess.getPositionRule()); 
            pushFollow(FOLLOW_rulePosition_in_entryRulePosition1312);
            iv_rulePosition=rulePosition();

            state._fsp--;

             current =iv_rulePosition.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePosition1323); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePosition"


    // $ANTLR start "rulePosition"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:541:1: rulePosition returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '$' this_INT_1= RULE_INT ) ;
    public final AntlrDatatypeRuleToken rulePosition() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        Token this_INT_1=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:544:28: ( (kw= '$' this_INT_1= RULE_INT ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:545:1: (kw= '$' this_INT_1= RULE_INT )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:545:1: (kw= '$' this_INT_1= RULE_INT )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:546:2: kw= '$' this_INT_1= RULE_INT
            {
            kw=(Token)match(input,19,FOLLOW_19_in_rulePosition1361); 

                    current.merge(kw);
                    newLeafNode(kw, grammarAccess.getPositionAccess().getDollarSignKeyword_0()); 
                
            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_rulePosition1376); 

            		current.merge(this_INT_1);
                
             
                newLeafNode(this_INT_1, grammarAccess.getPositionAccess().getINTTerminalRuleCall_1()); 
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePosition"


    // $ANTLR start "entryRuleRuleName"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:566:1: entryRuleRuleName returns [EObject current=null] : iv_ruleRuleName= ruleRuleName EOF ;
    public final EObject entryRuleRuleName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRuleName = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:567:2: (iv_ruleRuleName= ruleRuleName EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:568:2: iv_ruleRuleName= ruleRuleName EOF
            {
             newCompositeNode(grammarAccess.getRuleNameRule()); 
            pushFollow(FOLLOW_ruleRuleName_in_entryRuleRuleName1421);
            iv_ruleRuleName=ruleRuleName();

            state._fsp--;

             current =iv_ruleRuleName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleName1431); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRuleName"


    // $ANTLR start "ruleRuleName"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:575:1: ruleRuleName returns [EObject current=null] : (otherlv_0= ':' this_Ident_1= ruleIdent ) ;
    public final EObject ruleRuleName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        EObject this_Ident_1 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:578:28: ( (otherlv_0= ':' this_Ident_1= ruleIdent ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:579:1: (otherlv_0= ':' this_Ident_1= ruleIdent )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:579:1: (otherlv_0= ':' this_Ident_1= ruleIdent )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:579:3: otherlv_0= ':' this_Ident_1= ruleIdent
            {
            otherlv_0=(Token)match(input,16,FOLLOW_16_in_ruleRuleName1468); 

                	newLeafNode(otherlv_0, grammarAccess.getRuleNameAccess().getColonKeyword_0());
                
             
                    newCompositeNode(grammarAccess.getRuleNameAccess().getIdentParserRuleCall_1()); 
                
            pushFollow(FOLLOW_ruleIdent_in_ruleRuleName1490);
            this_Ident_1=ruleIdent();

            state._fsp--;

             
                    current = this_Ident_1; 
                    afterParserOrEnumRuleCall();
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRuleName"


    // $ANTLR start "entryRuleIdent"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:600:1: entryRuleIdent returns [EObject current=null] : iv_ruleIdent= ruleIdent EOF ;
    public final EObject entryRuleIdent() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIdent = null;


        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:601:2: (iv_ruleIdent= ruleIdent EOF )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:602:2: iv_ruleIdent= ruleIdent EOF
            {
             newCompositeNode(grammarAccess.getIdentRule()); 
            pushFollow(FOLLOW_ruleIdent_in_entryRuleIdent1525);
            iv_ruleIdent=ruleIdent();

            state._fsp--;

             current =iv_ruleIdent; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIdent1535); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIdent"


    // $ANTLR start "ruleIdent"
    // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:609:1: ruleIdent returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
    public final EObject ruleIdent() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:612:28: ( ( (otherlv_0= RULE_ID ) ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:613:1: ( (otherlv_0= RULE_ID ) )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:613:1: ( (otherlv_0= RULE_ID ) )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:614:1: (otherlv_0= RULE_ID )
            {
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:614:1: (otherlv_0= RULE_ID )
            // ../de.sabram.upb.specs.map/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalMap.g:615:3: otherlv_0= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getIdentRule());
            	        }
                    
            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleIdent1579); 

            		newLeafNode(otherlv_0, grammarAccess.getIdentAccess().getRefNonTerminalCrossReference_0()); 
            	

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIdent"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleTypeMapFile_in_entryRuleTypeMapFile75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeMapFile85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleTypeMapFile123 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ruleSymbolMapping_in_ruleTypeMapFile144 = new BitSet(new long[]{0x0000000000003842L});
    public static final BitSet FOLLOW_12_in_ruleTypeMapFile165 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ruleRuleMapping_in_ruleTypeMapFile186 = new BitSet(new long[]{0x0000000000003842L});
    public static final BitSet FOLLOW_13_in_ruleTypeMapFile206 = new BitSet(new long[]{0x0000000000003802L});
    public static final BitSet FOLLOW_ruleSymbolMapping_in_entryRuleSymbolMapping243 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSymbolMapping253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIdent_in_ruleSymbolMapping300 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleSymbolMapping311 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ruleMembers_in_ruleSymbolMapping332 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleSymbolMapping344 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMembers_in_entryRuleMembers380 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMembers390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIdent_in_ruleMembers435 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleRuleMapping_in_entryRuleRuleMapping471 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRuleMapping481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRule_in_ruleRuleMapping528 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_ruleRewrite_in_ruleRuleMapping543 = new BitSet(new long[]{0x0000000000018000L});
    public static final BitSet FOLLOW_ruleRuleName_in_ruleRuleMapping565 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleRuleMapping578 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRule_in_entryRuleRule614 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRule624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIdent_in_ruleRule671 = new BitSet(new long[]{0x0000000000014000L});
    public static final BitSet FOLLOW_ruleDelimiter_in_ruleRule686 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleRHS_in_ruleRule706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDelimiter_in_entryRuleDelimiter743 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDelimiter754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_ruleDelimiter792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_ruleDelimiter811 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRHS_in_entryRuleRHS851 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRHS861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleElement_in_ruleRHS906 = new BitSet(new long[]{0x0000000000000052L});
    public static final BitSet FOLLOW_ruleElement_in_entryRuleElement942 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleElement952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIdent_in_ruleElement999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleElement1015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRewrite_in_entryRuleRewrite1051 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRewrite1062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_ruleRewrite1100 = new BitSet(new long[]{0x0000000000080010L});
    public static final BitSet FOLLOW_ruleRewriteRHS_in_ruleRewrite1122 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_18_in_ruleRewrite1140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRewriteRHS_in_entryRuleRewriteRHS1181 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRewriteRHS1192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePosition_in_ruleRewriteRHS1239 = new BitSet(new long[]{0x0000000000080012L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleRewriteRHS1265 = new BitSet(new long[]{0x0000000000080012L});
    public static final BitSet FOLLOW_rulePosition_in_entryRulePosition1312 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePosition1323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rulePosition1361 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_rulePosition1376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRuleName_in_entryRuleRuleName1421 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRuleName1431 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_ruleRuleName1468 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ruleIdent_in_ruleRuleName1490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIdent_in_entryRuleIdent1525 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIdent1535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleIdent1579 = new BitSet(new long[]{0x0000000000000002L});

}